.TH "PAPI_set_granularity" 3 "Thu Dec 14 2023" "Version 7.1.0.0" "PAPI" \" -*- nroff -*-
.ad l
.nh
.SH NAME
PAPI_set_granularity \- Set the default counting granularity for eventsets bound to the cpu component\&.  

.SH SYNOPSIS
.br
.PP
.SH "Detailed Description"
.PP 

.PP
\fBC Prototype:\fP
.RS 4
#include <\fBpapi\&.h\fP> 
.br
 int \fBPAPI_set_granularity( int granularity )\fP;
.RE
.PP
\fBParameters\fP
.RS 4
\fI--\fP granularity one of the following constants as defined in the \fBpapi\&.h\fP header file 
.PD 0

.IP "\(bu" 2
PAPI_GRN_THR -- Count each individual thread 
.IP "\(bu" 2
PAPI_GRN_PROC -- Count each individual process 
.IP "\(bu" 2
PAPI_GRN_PROCG -- Count each individual process group 
.IP "\(bu" 2
PAPI_GRN_SYS -- Count the current CPU 
.IP "\(bu" 2
PAPI_GRN_SYS_CPU -- Count all CPUs individually 
.IP "\(bu" 2
PAPI_GRN_MIN -- The finest available granularity 
.IP "\(bu" 2
PAPI_GRN_MAX -- The coarsest available granularity  
    
.PP
.RE
.PP
\fBReturn values\fP
.RS 4
\fIPAPI_OK\fP 
.br
\fIPAPI_EINVAL\fP One or more of the arguments is invalid\&.  
    
.RE
.PP
\fBPAPI_set_granularity\fP sets the default counting granularity for all new event sets created by \fBPAPI_create_eventset\fP\&. This call implicitly sets the granularity for the cpu component (component 0) and is included to preserve backward compatibility\&.
.PP
\fBExample:\fP
.RS 4

.PP
.nf
int ret;

// Initialize the library
ret = PAPI_library_init(PAPI_VER_CURRENT);
if (ret > 0 && ret != PAPI_VER_CURRENT) {
  fprintf(stderr,"PAPI library version mismatch!\\n");
  exit(1); 
}
if (ret < 0) handle_error(ret);

// Set the default granularity for the cpu component
ret = PAPI_set_granularity(PAPI_GRN_PROC);
if (ret != PAPI_OK) handle_error(ret);
ret = PAPI_create_eventset(&EventSet);
if (ret != PAPI_OK) handle_error(ret);

.fi
.PP
.RE
.PP
\fBSee also\fP
.RS 4
\fBPAPI_set_cmp_granularity\fP \fBPAPI_set_domain\fP \fBPAPI_set_opt\fP \fBPAPI_get_opt\fP 
.RE
.PP


.SH "Author"
.PP 
Generated automatically by Doxygen for PAPI from the source code\&.
